package com.chaodev.base.dao;

import com.chaodev.base.dto.ButtonDTO;
import com.chaodev.base.dto.MenuDTO;
import com.chaodev.base.model.Menu;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

@Mapper
public interface MenuDao {
    /**
     * 获取左侧菜单树
     *
     * @param map
     * @return
     */
    List<Map<String, Object>> getMenuTitle(Map<String, Object> map);

    /**
     * 获取菜单按钮列表
     *
     * @param map
     * @return
     */
    List<ButtonDTO> getMenuButton(Map<String, Object> map);

    /**
     * 获取菜单列表
     *
     * @param map
     * @return
     */
    List<MenuDTO> menuQuery(Map<String, Object> map);

    /**
     * 新增菜单
     *
     * @param menu
     * @return
     */
    int menuAdd(Menu menu);

    /**
     * 修改菜单
     *
     * @param menu
     * @return
     */
    int menuUpd(Menu menu);

    /**
     * 获取菜单上级树
     *
     * @param map
     * @return
     */
    List<Map<String, Object>> getMenuParentTree(Map<String, Object> map);

    /**
     * 获取权限菜单树
     *
     * @param map
     * @return
     */
    List<MenuDTO> getMenuZtree(Map<String, Object> map);

    /**
     * 获取功能菜单树
     *
     * @param map
     * @return
     */
    List<MenuDTO> getMenuZtreeBtn(Map<String, Object> map);

    /**
     * 删除菜单
     *
     * @param menu
     * @return
     */
    int menuDelete(Menu menu);

}
